/* 
 * Algoritmos y estructura de datos
 * Autor: Gustavo Sanchez Cardona
 * Carnet: 10313
 * Seccion: 
 */
/*
 * Descripcion: Clase principal del radio simulado, se encarga de recibir las entradas de teclado del usuario, desplegar el menu y crear los objetos radio.

 */
import java.util.*;
public class Menu {
	public static void main(String[] args){
		Radio aparato;
		int opcion=0;
		int temporal=0;
		String estado;
		
		aparato=new Radio();
		do{
			System.out.println("\n |                Estado del radio                  |");
			estado=aparato.getEncendido()?"Encendido":"Apagado";
			System.out.println("\n |        El radio se encuentra: "+estado+ "        |");
			estado=aparato.getTipo()?"FM":"AM";
			System.out.println("\n | La radio se encuentra en freacuencia"+ estado +" |");
			System.out.println("\n | La estacion actual es :"+ aparato.getEstacion_actual()+" |");
			System.out.println("\n |                         Menu                    |");
			System.out.println("\n |              1. Encender/Apagar la radio        |");
			System.out.println("\n |              2.Cambiar entre AM/FM              |");
			System.out.println("\n |              3.Siguiente estacion               |");
			System.out.println("\n |              4.Estacion anterior                |");
			System.out.println("\n |              5.Guardar estacion                 |");
			System.out.println("\n |              6.Regresar a estacion guardada     |");
			System.out.println("\n|               7.Salir                            |");
			opcion=entrada("\n|     Ingrese el numero de la opcion que desea       |", 7, 1);
			switch (opcion){
				case 1:
					aparato.power();
				break;
				case 2:
					aparato.cambio();
				break;
				case 3:
					aparato.fw();
				break;
				case 4:
					aparato.bw();
				break;
				case 5:
					temporal=entrada("\n Ingrese la casilla donde desea guardar la estacion actual(1-12)", 12, 1);
					aparato.store(temporal);
				break;
				case 6:
					temporal=entrada("\n Ingrese la casilla de memoria donde se encuentra la estacion deseada(1-12)", 12, 1);
					aparato.select(temporal);
				break;
				case 7:
					System.out.println("\n Gracias por utilizar el programa ");
				
				break;
					
					
			}
			
			
			
		}while(opcion!=4);
		
	}
	public static int entrada(String texto, int max, int min){
		Scanner readln=new Scanner(System.in);
		int x=0;
		try{
			System.out.println("|Ingrese el numero de la opcion que desee");
			x=readln.nextInt();
			if((x>max)&&(x<min)){
				throw new InputMismatchException();
			}
		}
		catch(InputMismatchException exception){
			System.out.println("\n Error numero invalido \n");
			x=0;
			
		}
		return x;
			
	}

}
